{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Gomoku Game with AI Agent\n",
    "\n",
    "Gomoku is a classic board game, also known as Five in a Row. In this example, we will show \n",
    "\n",
    "- How to build a host agent to manage the game board \n",
    "- How to build player agent to play the game\n",
    "- How to build the conversation to play the game\n",
    "\n",
    "## Prerequisites\n",
    "\n",
    "- Follow the [README.md](https://github.com/modelscope/agentscope) to install agentscope package. \n",
    "- Prepare a model configuration file. You can choose and modify one example configuration from the [example model configs](../example_model_configs) folder according to your needs. \n",
    "\n",
    "## Note\n",
    "\n",
    "- The example is tested with the following models. For other models, you may need to adjust the code accordingly. \n",
    "    - gpt-4\n",
    "    - gpt-3.5-turbo\n",
    "    - dashscope_chat (qwen-max)\n",
    "    - ollama_chat (llama3_8b)\n",
    "\n",
    "## Preparation\n",
    "\n",
    "Please fill the following cell with your model configurations."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "outputs": [],
   "source": [
    "YOUR_MODEL_CONFIGURATION_NAME = \"{YOUR_MODEL_CONFIGURATION_NAME}\"\n",
    "YOUR_MODEL_CONFIGURATION = {\n",
    "    \"config_name\": YOUR_MODEL_CONFIGURATION_NAME\n",
    "    \n",
    "    # ...\n",
    "}"
   ],
   "metadata": {
    "collapsed": false,
    "ExecuteTime": {
     "end_time": "2024-03-27T08:09:57.602994Z",
     "start_time": "2024-03-27T08:09:57.565787Z"
    }
   }
  },
  {
   "cell_type": "markdown",
   "source": [
    "## Step 1: Prepare a board for Gomoku\n",
    "\n",
    "First we create a `BoardAgent` class by inheriting from `AgentBase`, which manage the game board and update the game status as follows.\n",
    "\n",
    "To create a better visual experience, we also provide a function `board2img` to convert the board to an image. "
   ],
   "metadata": {
    "collapsed": false
   }
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "import matplotlib.patches as patches\n",
    "\n",
    "def board2img(board: np.ndarray, save_path: str)->str:\n",
    "    size = board.shape[0]\n",
    "    fig, ax = plt.subplots(figsize=(10, 10))\n",
    "    ax.set_xlim(0, size - 1)\n",
    "    ax.set_ylim(0, size - 1)\n",
    "    \n",
    "    for i in range(size):\n",
    "        ax.axhline(i, color='black', linewidth=1)\n",
    "        ax.axvline(i, color='black', linewidth=1)\n",
    "        \n",
    "    for y in range(size):\n",
    "        for x in range(size):\n",
    "            if board[y, x] == NAME_TO_PIECE[NAME_BLACK]:  # black player\n",
    "                circle = patches.Circle((x, y), 0.45, \n",
    "                                        edgecolor='black', \n",
    "                                        facecolor='black',\n",
    "                                        zorder=10)\n",
    "                ax.add_patch(circle)\n",
    "            elif board[y, x] == NAME_TO_PIECE[NAME_WHITE]:  # white player\n",
    "                circle = patches.Circle((x, y), 0.45, \n",
    "                                        edgecolor='black', \n",
    "                                        facecolor='white',\n",
    "                                        zorder=10)\n",
    "                ax.add_patch(circle)\n",
    "    # Hide the axes and invert the y-axis\n",
    "    ax.set_xticks(range(size))\n",
    "    ax.set_yticks(range(size))\n",
    "    ax.set_xticklabels(range(size))\n",
    "    ax.set_yticklabels(range(size))\n",
    "    ax.invert_yaxis()\n",
    "    plt.savefig(save_path, bbox_inches='tight', pad_inches=0.1)\n",
    "    plt.close(fig)  # Close the figure to free memory\n",
    "    return save_path"
   ],
   "metadata": {
    "collapsed": false,
    "ExecuteTime": {
     "end_time": "2024-03-27T08:09:58.153932Z",
     "start_time": "2024-03-27T08:09:57.571266Z"
    }
   }
  },
  {
   "cell_type": "markdown",
   "source": [
    "The following code shows the implementation of the `BoardAgent` class. The agent manages the game board and updates the game status."
   ],
   "metadata": {
    "collapsed": false
   }
  },
  {
   "cell_type": "code",
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "from agentscope.message import Msg\n",
    "from agentscope.agents import AgentBase\n",
    "from typing import Optional, Union, Sequence\n",
    "\n",
    "CURRENT_BOARD_PROMPT_TEMPLATE = \"\"\"The current board is as follows:\n",
    "{board}\n",
    "{player}, it's your turn.\"\"\"\n",
    "\n",
    "NAME_BLACK = \"Alice\"\n",
    "NAME_WHITE = \"Bob\"\n",
    "\n",
    "# The mapping from name to piece\n",
    "NAME_TO_PIECE = {\n",
    "    NAME_BLACK: \"o\",\n",
    "    NAME_WHITE: \"x\",\n",
    "}\n",
    "\n",
    "EMPTY_PIECE = \"0\"\n",
    "\n",
    "class BoardAgent(AgentBase):\n",
    "    \n",
    "    def __init__(self, name):\n",
    "        super().__init__(name=name, use_memory=False)\n",
    "        \n",
    "        # Init the board\n",
    "        self.size = 15\n",
    "        self.board = np.full((self.size, self.size), EMPTY_PIECE)\n",
    "        \n",
    "        # Record the status of the game\n",
    "        self.game_end = False\n",
    "        \n",
    "    def reply(self, x: Optional[Union[Msg, Sequence[Msg]]] = None) -> Msg:\n",
    "        if x is None:\n",
    "            # Beginning of the game\n",
    "            content = (\n",
    "                \"Welcome to the Gomoku game! Black player goes first. \"\n",
    "                \"Please make your move.\"\n",
    "            )\n",
    "        else:\n",
    "            row, col = x[\"content\"]\n",
    "\n",
    "            self.assert_valid_move(row, col)\n",
    "\n",
    "            # change the board\n",
    "            self.board[row, col] = NAME_TO_PIECE[x[\"name\"]]\n",
    "\n",
    "            # check if the game ends\n",
    "            if self.check_draw():\n",
    "                content = \"The game ends in a draw!\"\n",
    "                self.game_end = True\n",
    "            else:\n",
    "                next_player_name = (\n",
    "                    NAME_BLACK if x[\"name\"] == NAME_WHITE else NAME_WHITE\n",
    "                )\n",
    "                content = CURRENT_BOARD_PROMPT_TEMPLATE.format(\n",
    "                    board=self.board2text(),\n",
    "                    player=next_player_name,\n",
    "                )\n",
    "\n",
    "                if self.check_win(row, col, NAME_TO_PIECE[x[\"name\"]]):\n",
    "                    content = f\"The game ends, {x['name']} wins!\"\n",
    "                    self.game_end = True\n",
    "\n",
    "        msg_host = Msg(self.name, content, role=\"assistant\")\n",
    "        self.speak(msg_host)\n",
    "        \n",
    "        # Show an image of the board\n",
    "        img = plt.imread(board2img(self.board, 'current_board.png'))\n",
    "        plt.imshow(img)\n",
    "        plt.axis('off')\n",
    "        plt.show()\n",
    "        \n",
    "        return msg_host\n",
    "                    \n",
    "    def assert_valid_move(self, x: int, y: int) -> None:\n",
    "        if not (0 <= x < self.size and 0 <= y < self.size):\n",
    "            raise RuntimeError(f\"Invalid move: {[x, y]} out of board range.\")\n",
    "        \n",
    "        if not self.board[x, y] == EMPTY_PIECE:\n",
    "            raise RuntimeError(f\"Invalid move: {[x, y]} is already occupied by {self.board[x, y]}.\")\n",
    "    \n",
    "    def check_win(self, x: int, y: int, piece: str) -> bool:\n",
    "        xline = self._check_line(self.board[x, :], piece)\n",
    "        yline = self._check_line(self.board[:, y], piece)\n",
    "        diag1 = self._check_line(np.diag(self.board, y - x), piece)\n",
    "        diag2 = self._check_line(np.diag(np.fliplr(self.board), self.size - 1 - x - y), piece)\n",
    "        return xline or yline or diag1 or diag2\n",
    "\n",
    "    def check_draw(self) -> bool:\n",
    "        return np.all(self.board != EMPTY_PIECE)\n",
    "        \n",
    "    def board2text(self) -> str:\n",
    "        return \"\\n\".join([str(_)[1:-1].replace(\"'\", \"\").replace(\" \", \"\") for _ in self.board])\n",
    "        \n",
    "    def _check_line(self, line, piece: str) -> bool:\n",
    "        count = 0\n",
    "        for i in line:\n",
    "            if i == piece:\n",
    "                count += 1\n",
    "                if count == 5:\n",
    "                    return True\n",
    "            else:\n",
    "                count = 0\n",
    "        return False\n"
   ],
   "metadata": {
    "collapsed": false,
    "ExecuteTime": {
     "end_time": "2024-03-27T08:09:59.392069Z",
     "start_time": "2024-03-27T08:09:58.159470Z"
    }
   },
   "execution_count": 3
  },
  {
   "cell_type": "markdown",
   "source": [
    "### Step2: Prepare a Gomoku Player Agent\n",
    "\n",
    "In Gomoku player agent, we make the following assumptions:\n",
    " \n",
    "1. Agent's response only contains the move (a tuple of location `[x, y]`). Its thought is only recorded in its memory and only visible to itself, enabling the agent to generate strategies. \n",
    "2. Within the agent, to enable the agent to think, we ask LLMs to respond in a dictionary format, which contains the thought and the move (\"thought\" field must come before \"move\"). To achieve this, we prepare a parsing function to extract the dictionary from response. \n",
    "\n",
    "The implementation of the Gomoku agent is as follows: "
   ],
   "metadata": {
    "collapsed": false
   }
  },
  {
   "cell_type": "code",
   "outputs": [],
   "source": [
    "import json\n",
    "from agentscope.models import ModelResponse\n",
    "from typing import Optional, Union, Sequence\n",
    "\n",
    "SYS_PROMPT_TEMPLATE = \"\"\"\n",
    "You're a skillful Gomoku player. You should play against your opponent according to the following rules:\n",
    "\n",
    "Game Rules:\n",
    "1. This Gomoku board is a 15*15 grid. Moves are made by specifying row and column indexes, with [0, 0] marking the top-left corner and [14, 14] indicating the bottom-right corner.\n",
    "2. The goal is to be the first player to form an unbroken line of your pieces horizontally, vertically, or diagonally. \n",
    "3. If the board is completely filled with pieces and no player has formed a row of five, the game is declared a draw.\n",
    "\n",
    "Note: \n",
    "1. Your pieces are represented by '{}', your opponent's by '{}'. 0 represents an empty spot on the board. \n",
    "2. You should think carefully about your strategy and moves, considering both your and your opponent's subsequent moves. \n",
    "3. Make sure you don't place your piece on a spot that has already been occupied. \n",
    "4. Only an unbroken line of five same pieces will win the game. For example, \"xxxoxx\" won't be considered a win. \n",
    "5. Note the unbroken line can be formed in any direction: horizontal, vertical, or diagonal.\n",
    "\"\"\"\n",
    "\n",
    "HINT_PROMPT = \"\"\"You should respond in the following format, which can be loaded by json.loads in Python:\n",
    "{{\n",
    "    \"thought\": \"analyze the present situation, and what move you should make\",\n",
    "    \"move\": [row index, column index]\n",
    "}}\n",
    "\"\"\"\n",
    "\n",
    "\n",
    "def parse_func(response: ModelResponse) -> ModelResponse:\n",
    "    res_dict = json.loads(response.text)\n",
    "    if \"move\" in res_dict and \"thought\" in res_dict:\n",
    "        return ModelResponse(raw=res_dict)\n",
    "    else:\n",
    "        raise ValueError(f\"Invalid response format in parse_func with response: {response.text}\")\n",
    "\n",
    "class GomokuAgent(AgentBase):\n",
    "    \"\"\"A Gomoku agent that can play the game with another agent.\"\"\"\n",
    "    \n",
    "    def __init__(self, name, sys_prompt, model_config_name):\n",
    "        super().__init__(name=name, sys_prompt=sys_prompt, model_config_name=model_config_name)\n",
    "        \n",
    "        self.memory.add(Msg(\"system\", sys_prompt, role=\"system\"))\n",
    "        \n",
    "    def reply(self, x: Optional[Union[Msg, Sequence[Msg]]] = None) -> Msg:\n",
    "        if self.memory:\n",
    "            self.memory.add(x)\n",
    "        \n",
    "        msg_hint = Msg(\"system\", HINT_PROMPT, role=\"system\")\n",
    "        \n",
    "        prompt = self.model.format(\n",
    "            self.memory.get_memory(),\n",
    "            msg_hint,     \n",
    "        )\n",
    "        \n",
    "        response = self.model(\n",
    "            prompt,\n",
    "            parse_func=parse_func,\n",
    "            max_retries=3,\n",
    "        ).raw\n",
    "        \n",
    "        # For better presentation, we print the response proceeded by json.dumps, this msg won't be recorded in memory\n",
    "        self.speak(Msg(self.name, json.dumps(response, indent=4, ensure_ascii=False), role=\"assistant\"))\n",
    "        \n",
    "        if self.memory:\n",
    "            self.memory.add(Msg(self.name, response, role=\"assistant\"))\n",
    "        \n",
    "        # Hide thought from the response\n",
    "        return Msg(self.name, response[\"move\"], role=\"assistant\") \n"
   ],
   "metadata": {
    "collapsed": false,
    "ExecuteTime": {
     "end_time": "2024-03-27T08:09:59.397713Z",
     "start_time": "2024-03-27T08:09:59.392729Z"
    }
   },
   "execution_count": 4
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Now, let's create two AI agents, named \"Alice\" and \"Bob,\" who will engage in the Gomoku game, and a board agent. Creating agents is straightforward. "
   ]
  },
  {
   "cell_type": "code",
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\u001B[32m2024-03-27 16:09:59.427\u001B[0m | \u001B[1mINFO    \u001B[0m | \u001B[36magentscope.models\u001B[0m:\u001B[36mread_model_configs\u001B[0m:\u001B[36m171\u001B[0m - \u001B[1mLoad configs for model wrapper: post_api\u001B[0m\n",
      "\u001B[32m2024-03-27 16:09:59.435\u001B[0m | \u001B[1mINFO    \u001B[0m | \u001B[36magentscope.utils.monitor\u001B[0m:\u001B[36m_create_monitor_table\u001B[0m:\u001B[36m341\u001B[0m - \u001B[1mInit [monitor_metrics] as the monitor table\u001B[0m\n",
      "\u001B[32m2024-03-27 16:09:59.435\u001B[0m | \u001B[1mINFO    \u001B[0m | \u001B[36magentscope.utils.monitor\u001B[0m:\u001B[36m_create_monitor_table\u001B[0m:\u001B[36m342\u001B[0m - \u001B[1mInit [monitor_metrics_quota_exceeded] as the monitor trigger\u001B[0m\n",
      "\u001B[32m2024-03-27 16:09:59.436\u001B[0m | \u001B[1mINFO    \u001B[0m | \u001B[36magentscope.utils.monitor\u001B[0m:\u001B[36m__init__\u001B[0m:\u001B[36m311\u001B[0m - \u001B[1mSqliteMonitor initialization completed at [./runs/run_20240327-160958_kbf2ta/agentscope.db]\u001B[0m\n",
      "\u001B[32m2024-03-27 16:09:59.440\u001B[0m | \u001B[1mINFO    \u001B[0m | \u001B[36magentscope.models.model\u001B[0m:\u001B[36m__init__\u001B[0m:\u001B[36m257\u001B[0m - \u001B[1mInitialize model [post_api]\u001B[0m\n",
      "\u001B[32m2024-03-27 16:09:59.441\u001B[0m | \u001B[1mINFO    \u001B[0m | \u001B[36magentscope.models.model\u001B[0m:\u001B[36m__init__\u001B[0m:\u001B[36m257\u001B[0m - \u001B[1mInitialize model [post_api]\u001B[0m\n"
     ]
    }
   ],
   "source": [
    "import agentscope\n",
    "\n",
    "agentscope.init(\n",
    "    model_configs=YOUR_MODEL_CONFIGURATION,\n",
    "    project=\"Gomoku\",    \n",
    ")\n",
    "\n",
    "piece_black = NAME_TO_PIECE[NAME_BLACK]\n",
    "piece_white = NAME_TO_PIECE[NAME_WHITE]\n",
    "\n",
    "black = GomokuAgent(\n",
    "    NAME_BLACK,\n",
    "    model_config_name=YOUR_MODEL_CONFIGURATION_NAME,\n",
    "    sys_prompt=SYS_PROMPT_TEMPLATE.format(piece_black, piece_white),\n",
    ")\n",
    "                    \n",
    "white = GomokuAgent(\n",
    "    NAME_WHITE,\n",
    "    model_config_name=YOUR_MODEL_CONFIGURATION_NAME,\n",
    "    sys_prompt=SYS_PROMPT_TEMPLATE.format(piece_white, piece_black),\n",
    ")\n",
    "\n",
    "board = BoardAgent(name=\"Host\")"
   ],
   "metadata": {
    "collapsed": false,
    "ExecuteTime": {
     "end_time": "2024-03-27T08:09:59.446367Z",
     "start_time": "2024-03-27T08:09:59.398116Z"
    }
   },
   "execution_count": 5
  },
  {
   "cell_type": "markdown",
   "source": [
    "### Step 3: Start the Gomoku game\n",
    "\n",
    "The game logic is simple in Gomoku, where two players take turns to make a move. The game ends when one player wins or the board is full. \n",
    "\n",
    "In this game, we use a message hub to share messages between the two players (board agent doesn't have memory), so that one player can hear what the board agent says to the other player, and what moves the other player makes. \n",
    "\n",
    "Note here we only show 10 steps of the game. You can adjust the `MAX_STEPS` to play more rounds."
   ],
   "metadata": {
    "collapsed": false
   }
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\u001B[36m\u001B[1mHost\u001B[0m\u001B[36m\u001B[0m: Welcome to the Gomoku game! Black player goes first. Please make your move.\n"
     ]
    },
    {
     "data": {
      "text/plain": "<Figure size 432x288 with 1 Axes>",
      "image/png": "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"
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\u001B[32m\u001B[1mAlice\u001B[0m\u001B[32m\u001B[0m: {\n",
      "    \"thought\": \"As the first move of the game, it's best to place the piece in the center of the board to maximize possible winning directions.\",\n",
      "    \"move\": [\n",
      "        7,\n",
      "        7\n",
      "    ]\n",
      "}\n",
      "\u001B[36m\u001B[1mHost\u001B[0m\u001B[36m\u001B[0m: The current board is as follows:\n",
      "000000000000000\n",
      "000000000000000\n",
      "000000000000000\n",
      "000000000000000\n",
      "000000000000000\n",
      "000000000000000\n",
      "000000000000000\n",
      "0000000o0000000\n",
      "000000000000000\n",
      "000000000000000\n",
      "000000000000000\n",
      "000000000000000\n",
      "000000000000000\n",
      "000000000000000\n",
      "000000000000000\n",
      "Bob, it's your turn.\n"
     ]
    },
    {
     "data": {
      "text/plain": "<Figure size 432x288 with 1 Axes>",
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAO4AAADnCAYAAAAZ4WrqAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8o6BhiAAAACXBIWXMAAAsTAAALEwEAmpwYAAAgxElEQVR4nO2de3Ab1d33f7pZkiU7tnO1CUkIcZKaJDwkJSSQhJe+hECZN7yZOm1TAr0MUKYwKeWPdmDo9DLwttP2j9LSdtrh0hYaGgiFXCAkQEwgjmMcJ7EdR4kdy7IkS7auK+1qV3s75/0jiIfnmYeic2THXfr7zHgYJvrsOdqfvrrs7tmfjVIKCIJYC/tUTwBBEHYwuAhiQTC4CGJBMLgIYkEwuAhiQTC4CGJBMLgIYkGYg3v27Nm6559/fu3Y2Fj1ZEwIQZBPx8Z6Aca2bds21tfXG01NTfJjjz3Wqaqqk1LqmKT5Ici/DU6n03A6nWZZj2XduGEYzqVLlyYSicQ0VVXt+/bt+/ypU6ceX7ZsWSPrtgghcObMGVixYgWrCpRS6O3thauvvprZBQDo6enhciVJgvHxcbjyyiuZXUVRIBKJwOLFi5ldVVUhGAzC5z73OWbXMAw4f/48XHXVVcwuIQT6+/th+fLlzC6lFPr6+i55ffP5PKRSKVi4cCGzWygUIBaLQXNzM7NbLBYhFArB0qVLmV1d16nX6/1/W7du3VmWQCll+nvppZcW3HPPPV/u6uqaSSkFVVVdL7zwQi/lQNd1+te//pVHpYQQ+uc//5nbfe6557jcWCxGDxw4wOWmUim6Z88eLjefz9OXX36Zy5Vlme7cuZPL1TSNPv/881yuaZr0L3/5C5dbSY0ikQg9dOgQlzs+Pk7379/P5WazWfqPf/yDy5Ukydi1a9f9tMwcMn/ibt26NbR169YQq4cgyMSBR5URxIJMaXBtNttUDo8glmVKg0txSSGCcIFflRHEgmBwEcSCYHARxIJgcBHEgmBwEcSCYHARxILgeVwEsSDMwT169Ojljz322J0TMTiex0UQPpivVZ4/f348EAgQQoiNEAJnz56dGw6H3adPn2YenBAC4XAYeFxKKbcLABCJRLjcVCoFwWCQy83lcjA8PMzlyrIMoVCIy9U0DUZGRrhc0zS53amq0fj4OPe+ymaz3PWVJIm7vsViEVRVLfvxzMG12WwuVVVrc7mcp6ampkgIsVFKgRDCuikghHz0xwPvuB8fm2dM3nErcQkhlnMreb4l/99pP7PAHFy73e657777BtLpdHV9fb2ybNmySCAQUFeuXMm6KTAMAwKBAPC49MO1nrxub28vlxuPx8E0TS43nU5DPp/nckVRhLGxMS5XURQYHh7mcnVdh/Pnz3O5pbW8l7pG0WgUHA4Hl5tIJKBYLHK5giBAOp3mcguFAkSj0bIfzxzcpqam7ObNm9tYPQRBJg48HYQgFgSDiyAWBIOLIBYEg4sgFgSvnEIQC4J3wEAQC4JflRHEgmBwEcSCYHARxIIwBzebzboTicQ0wzDwyBKCTBHMlzw+/fTTjYFA4NoNGzac/sY3vjE4GZNCEOSfwxzcu+++O/Lggw9eVVtbK5eafh0/ftzvcLA37COEwPHjx8HlcjG7lFLo7OwEt9vN7AIAdHZ2gsfjYfYEQYCRkREQBIHZlSQJzp8/D7IsM7uKokBvby8YhsHsapoGJ06c4Dr9ZpomdHR0gNPJ/FL5qL5VVVXMbqm+PDVKp9MQi8UgnU4zu/l8HoaGhkAURWZXlmXo7+9nWp5XQlVVptoyV+OJJ55Y7fV6F7S0tHS43W5yyy239EiSVLjjjjtYNwWmaYKiKMDjUkpBkiQuF+Diahsed2xsDPr6+mDjxo3MbiaTgbq6Orj99tuZXVEUwe12c825WCwCAHC5hmGAqqpcLiEEZFm+5PUdHR2F8+fPwxe+8AVmN5lMQnd3N9x6663Mbi6XA5/PB5s3b2Z2ZVmGt956q+zHMwf3Jz/5yWlN0877fD4RAMDj8egul4t6vV7WTYFhGFBVVQU8LqW0ItflcnG5Ho+He9xK3Er2FQBwP19d17nHJYT8W9VIVdWK9pXdXv4hJ+bg1tfXKwCgsHoIgkwceDoIQSwIBhdBLAgGF0EsCAYXQSwIBhdBLAgGF0EsCAYXQSwIBhdBLAgGF0EsCHNw29vbZ+zfv39VKpViv/obQZAJgfmSx2AwqD7zzDOLv/zlLxe/853v9BuG4SCEcK1aMU0TTNPkciml3C7AxWtDL/WcK3ENw6hoXN7nW8m4hJCK6lvJnK1YX5Z7sDEHd82aNUpXV1dClmXXh8v6VnV0dNSwbgfgP5d98SwJBLi4NI9nSSAAcC8nzOVyEA6HIZPJMLuFQgEGBgZAkiRmt1gsQl9fH2iaxuzqug7d3d3czaiOHz/OdAF8CUopHD9+nGtJIAB/fbPZLMRiMUgkEsyuKIoQDAYhl8sxu4qiwNmzZ0FR2C/lZ60r8x7dt2/fFQ6Ho37t2rUBt9tNtmzZ8oFhGOKdd7K3zDUMA+x2O9x1113Mbukdmdc1TZPLjcfj0NPTw7XsK51OQ3t7O9eyL1EUob6+HlpbW5ldRVHA6/XCtm3bmF1d18HhcMD27duZ3dIbxaWuUTQahUAgwLX0MpFIQFdXF9fSS0EQoK2tDbZs2cLsFgoFeP3118t+PHNwH3744UEAmJA7X+B9lRGED7yvMoJYEDwdhCAWBIOLIBYEewchiAXB37gIYkHwqzKCWBAMLoJYEAwuglgQDC6CWBA8qowgFoQ5uLlczv7QQw/9n2g0Or3SwfGoMoLwwXyt8p49exa9+OKL8+65556exsbGzNDQ0Ox4PO46d+4c8+CEEIjH48DjUkq5XYCLPYB43FQqBdFolMvN5XIwOjrK5RYKBYjFYlyuqqrc+8o0TcvVaHx8nLtGmUyG2xVFkbu+iqIwrRBiDq4gCHMXLVo0c3h4uHHJkiURQRB8hULBwbPMjRACkiRxLZEDuPhi5nV5xxUEAURR5HLz+Ty3qygK95w1TeN2TdPkdimlFdWI162kRpW4hUKBe18Vi0WmZZfMwd2xY8fha6+9tn/p0qWSy+Wiq1atCgaDweL111/PuikwDAOGh4eBx6WUwuDgILc7MDDA5cbjcXA6nVxuOp0GTdO4XFEUIZvNcrmKokA8HudydV2HkZERLpcQAkNDQ5e8RtFoFKqrq7ncRCIBlFIuVxAEkCSJyy0UCpBKpcp+PNcK57Vr147zeAiCTAx4OghBLAieDkIQC4KLDBDEguBXZQSxIBhcBLEgGFwEsSAYXASxIHhUGUEsCB5VRhALwhzckZGRxgMHDqyRJMk7GRNCEOTTYb7k8b333ruqq6vLs3btWgoA8GHTL5uu68yDl5ok8bilFhU8bmlsHrfUBAvdT6fU9Iu3RoQQSz3fSt1Jbfo1d+7cU0ePHl35zDPPtDz44IOnP2z65ef5vVpqKMXTFIpSCp2dnVBVVcXsAgB88MEH4Ha7mT1BECAcDkM2m2V2JUmCgYEBKBQKzG6xWITe3l6uF4Wu63DixAlmD+DiGxxvY7ZSjXgbs/HWN5PJQCwWY7pov0Q+n4dgMAj5fJ7ZlWUZzp49C8VikdlVVZXp8cyJOX36dJ3P55u2du3a/olo+mWz2bgaSpWafvG6hmFwuVPZ9Kuuro676ZfH45mSpl+U0kteI2z69T/wve99bwgAhlg9BEEmDjyPiyAWBIOLIBYEg4sgFgSDiyAWBIOLIBYEg4sgFgSDiyAWBIOLIBYEg4sgFgSDiyAWhDm477777swf/OAHm1999dVZkzEhBEE+HeZrlX/zm9+ssdls3muuucZmmqbtwoULc2KxWFUgEGAe3DRNiMViwONSSrldgIuLBXjcZDIJ4XCYyxUEASKRCJdbKBQ+unieFVVVYXR0lMs1DIN7PxNCKqovb43Gxsa4a5TJZLhrJIoid40mvenXvHnzVAAonjlz5qrW1taEKIpeRVHsuVyOdVNACAFZloHHpZSCoihcLgBwu6Iocs+5EleWZe45a5rG7ZqmiTUqE0mSuN1L0fSr48SJE1c1NzcHnE4nveaaa4YvXLhQXLNmDeumwDAMGBoaAh631BSK1z137hyXG4/HweFwcLnpdBqKxSKXW+ogx+MqigKjo6Ncrq7rMDw8zOUSQmBwcPCS1ygajYLX6+VyE4kEmKbJ5ZY6/fG4hUIBEolE2Y9nDu7ChQvFhQsXHmf1EASZOPCoMoJYEAwuglgQDC6CWBAMLoJYEK6O9BMFdjKYPCiloOs6JBIJiEajEA6HIRgMQmNjI3g8Htz3FmdKg4udDCae0t0Ru7u7YWBgAGbNmgWzZ8+GTZs2QSgUgmPHjsGsWbNg3bp14PV6McAWZUqDi0w8xWIR9u/fD01NTfCVr3wFqqqqPgpn6Sby58+fh927d8MXv/hFmD59OobXguBv3M8QpmnCwYMHoaWlBa6//npwu93/JZQ2mw2cTie0tLTALbfcAgcOHGC+ETfyrwEG9zNEMBiEqqoqaGlp+aefojabDWbPng3Lly+Hzs5O/MliQZiDK4qiK5vN1iiKwtdXApkUKKXQ09MDq1evLuurr81mg5aWFgiHw9y9fZCpgzm4vb29s++///6v/O1vf1s2GRNC+NB1HYrFIjQ0NJTtuFwu8Pv9IEnSJM4MmQyYD07dcMMN0V/84hfC+vXrh1RVtR84cOCaDz74wM/TQIsQAl1dXeD1snfspJRCV1cX+Hw+ZhcA4MSJE+D3+5k9QRAgFApxvdglSYJz584xLd8qoSgK9PT0fOK/q6oKoigyHWiy2WzgcDhg9+7dnxh40zThgw8+AI/HwzznUo2qq6uZXQD+GqXTaRgdHeVapZPP5+HChQugKAqzK8synDlzBkzTZHZVVWU63sAc3IGBAb/H4zGWLFmSBwDYsGFDIJ1Oy5s2bWLdFJimCblcDnhcSilkMhkuFwAglUpxuePj49DX1wc333wzs5vJZMDr9XKNW3qj+CRX0zSmplEA/3mUedOmTZ8YXMMwQBRFrjkTQiCbzXLXl7dGo6OjMDAwADfddBOzm0qloLa2lmvcXC4HTqeTy5VlGdra2sp+PHNwL7vsMvm3v/3tm6X/9/v9RY/HQ2pqalg3BYZhgMfjAR6XUjolriRJ4PV6uVxN07hdAPinbuk55XI5qKurK2t7hmGAJEnQ2Nj4ie0sdV3n3leEkCmpkd/v597PiqJwu6Zpcrt2ux3s9vJ/uTL/xvX5fGTWrFnsDUD/B/D84cRhs9lg2bJl0NXVVdZRYkopDA4OQmNjI3f/WmTqmNLTQXgaYmJZvHgxCIIAwWDwn+5bSilks1no6uqCtWvX4huoBZnS4OILZmJxOp1w2223wfHjx+H06dNgmuZ/CXCpGXgoFIK9e/fCxo0buQ8cIVMLXqv8GcPn80Frayu0t7fDiy++CPPmzYPGxkZwOByQTCYhFAqB2+2GLVu2QG1tLb55WhS8Vvkzhs1mA7fbDTfddBPIsvzRyqCOjg644447YNOmTVBbW8t0IAT51wOD+xnFZrOBz+eDJUuWwLx58yCRSMDy5cunelrIBIFvuwhiQTC4CGJBMLgIYkEwuAhiQZiDGw6Ha99+++2rBwYGKj4BiKciEIQP5qPKP/rRj649cuTI4vvvv9/+/e9//xQhxFY6sc8KIQR4XUopt1vyL/W4lbhTta8qGdeKc660voSQiuZcLszBNU2TTp8+Pe10Ot2qqtpfffXV1e3t7TW8k+3o6GD2AC7upGPHjnGfjzx27Bg4HA5mTxAECIfDkEwmmV1JkmBwcJC7KVRfXx/XcjNN0+DkyZNgGAaza5om910yCCFw7Ngxrm9WlFLo6OjgqlEmk4F4PA5jY2PMbj6fh2AwCJlMhtmVZRnOnj0LhUKB2VVVlem1zBzc9evXZyRJmlNfX59wu93kS1/6UichRLzzzjtZNwWGYYDD4YC77rqL2S29kO6++24ulxDC5cbjcejp6YFbb72V2U2n09De3g6bN29mdkVRhIaGBmhtbWV2FUUBn88H27ZtY3Z1XQeXywXbt29ndgkhYLfbuWtEKeVyS60uN27cyOwmEgno6uqC22+/ndkVBAHa2tpgy5YtzG6hUGBalskc3Hvvvff0vffee5rVQxBk4sCjyghiQTC4CGJBMLgIYkEwuAhiQTC4CGJBMLgIYkEwuAhiQTC4CGJBMLgIYkHwLo8IYkGYg7tv374rd+zYsbm3t7e+0sHxLo8Iwgfztco7d+5sjkaj9KWXXlq5YsWKd8Lh8IxkMukKBoPMg5umCYlEAnhcSikkk0kuFwC43WQyCWNjY1yuIAgwPj7O5RYKBe59paoqt2sYhuVqNDY2xl2jTCbD7YqiyF1fRVGY2p0yB3fHjh0n/vCHP3zB5XIldV23xWKx+nQ67YxEIqybAkIIZDIZ4HFLTb94XADgdjOZDCSTSS43n89zu7IsQyqV4nI1TYN0Os3lmqZZUY14xwXgr1EymeTez4IgcO9nSZK43WKxyLTskjm4M2bMcNx0002xjRs3nna5XHTNmjWDkUhEufHGG1k3BYZhQDQaBR6XUgojIyPc7vDwMJcbj8fB6/Vyuel0GiilXK4oilAoFLhcRVEglUpxubquQywW43IJIRAOhy95jaLRKEybNo3LTSQS4HQ6uVxBEEDTNC530pf1NTc3jzc3N4+zegiCTBx4OghBLAgGF0EsCJ7HRRALgv1xEcSC4CcuglgQ/MRFEAuCB6cQxIJgcBHEguBvXASxIGUFV1VVR1tb29Xj4+O+t99+e2lnZ+fsiRgcf+MiCB9lXfJomib87Gc/W/TAAw/4du3aNUtV1aqXX375ZbvdTgkhdkopmKbJPHipQRKPC3Ax+JfarWTOlbqVzHkqnm+p1ctU1Miq9S2XsoJbXV1tXnnllXEA8KxevTo1MjJyGQDAh02/rq206RdvU6hKmn7xNpTK5XIwMjICqVSK2S01/crn88xuJU2/dF2H7u7uipp+8TBVNaq06dfw8DBks1lmV5ZlCAQC/zpNv4rFosvn81155syZ3PDwsGfOnDkxu91O3W43xaZf5TOVTb+qq6unpOmXzWa75DXCpl8f4vF49F/96lfPM88GQZBJAY8qI4gFwSunEMSC4AUYCGJBMLgIYkEwuAhiQTC4CGJBMLgIYkEwuAhiQTC4CGJBMLgIYkHKCq4oiq5HHnlka09PT9N3v/vdLx09enTmZE8MQZBPpqxrlWtqavRIJJKglHoaGxtT586d869bty4JADAyMjIzkUi4hoaGmAcvNf3icSml3C7Axf4yPG4ymYR4PM7lCoIAY2NjXG6hUIDx8XEut9T0i8ctNf3icQkhU1KjsbEx7hqVVhbxuKIoctd30pp+ud1uV7FY9NTV1bk0TfMAAOi6bhsbG5uWzWado6OjzJMlhEA2mwUel1LK7QIAt5vJZCCdTnO5+Xye25VlGTKZDJeraRq3W2r6ZaUaJZNJSKVSXK4gCNw1kiSJe19NStMvVVWdGzduJKOjo/66ujrS0NDgAwBwuVz0uuuuuxAOh5UNGzYwT9YwDIhEIsDjUkohFApxu8FgkMuNx+Pg8Xi43HQ6DYQQLlcURZAkictVFAWSySSXq+s6jI6OcrmEEBgZGbnkNYpGo1BbW8vlJhIJcDgcXK4gCKCqKpc7Kcv63G638dWvfvUw82wQBJkU8KgyglgQDC6CWBBcSI8gFgQX0iOIBcGvyghiQTC4CGJBMLgIYkEwuAhiQTC4CGJByg5uoVDwGIZhlyTJI8sye18IBEEmjLKCm8vlqlpbW7cfO3as+ZFHHvlfO3bsuGWyJ4YgyCdT1rXK06ZN0+bNmxeYMWOG1traGnjqqadaAAA0TbMfOnRoxcmTJ31+v595cEIInDx5Empra5ldSimcPHkS6urqmF0AgFOnTkF9fT2zl81mYXh4GFRVZXZFUYRAIMB1/lpRFDh16hS4XC5mV9M06O7uhurqambXNE3o7u6GmpoaZrdUo2nTpjG7APw1SqfTEI1GQZZlZjeXy8Hg4CBXg7RCoQB9fX1cTc5UVWVqFlZWcDVNc0iSNO/dd9+tefbZZ1c8+OCDrwMAVFVVkdWrVw/FYjFl/fr1zJM1TRPGx8eBx6WUQiwW43IBLq4g4XETiQT4fD4uN5vNgt1u53IlSYJiscjlqqoKuVyOyzUMA5LJJJdLCIF4PM5do9HRUS43FotBfX09l5tKpaCqqorLzefzYJomlyvLMrz//vtlP76s4DocDvLEE08cMU2Tbtq0qd/j8Xz01lBXV1fw+XykoaGBebKGYYDP5wMel1I6Ja6qqlBTU8M9rt/v53JdLhe3qygK9/PVdZ3bJYRUVKPq6mouV5Zl7n1lGAZ3fe12O/e4brebqaVoucGlCxYsiDHPBkGQSQFPByGIBcHgIogFweAiiAXB4CKIBcHgIogFweAiiAXB4CKIBcHgIogFweAiiAUpK7iaptk7OzuXplIpf2dn55Kenp4ZEzE43uURQfgo65JHXddtjz766Iof//jH5rlz5+r2799/zZ49e/4OAEAptX34X+bBKaUf/fG4vOP+923weJd6XCs+30rq+/Ft8DpTUd9Kn2+5lBVcn89nLl68OFpfX280NzenbTbbAgAAVVXtr7zyynXvv/9+Dc8yKEIIdHR0cBenvb2d2fu4y/OJLwgCRCIRSCQSzK4kSTA4OAjZbJbZLRaL0NfXx7T0q4SmaXDy5EnQNI3ZNU0TOjs7gRDC7Jbqy0MlNSp13IvF2C+vz+fzMDw8DOl0mtmVZRkCgQCIosjsqqrKtBywrOAWi0WX0+ls3rt37yy73W4uWrQoDQDgdrtJa2vrcUqpeOeddzJP1jAMcDqdcNdddzG7lFKw2Wzw9a9/ncsFAC43Ho9DT08P3HrrrcxuOp2G9vZ22Lx5M7MriiIcPHgQWltbmV1FUcDv98O2bduYXV3XoaqqCrZv387sEkLA4XDA3XffzexWUqNoNAqBQAA2btzI7CYSCejq6oLbb7+d2RUEAdra2mDLli3M7qQ0/fJ4PPqTTz7519LOdDgceCdzBJlCyu6Pa7fbMawI8i8C9g5CEAuCvYMQxILgBRgIYkEwuAhiQfA3LoJYEPyNiyAWBL8qI4gFweAiiAXB4CKIBSkruJIkuR5//PH/Oz4+3nDo0KGFv/vd71ZN9sQQBPlkyrrk0e12G/39/bkzZ87MevLJJ1eYpqk+8MAD3QAA8Xi8LpvN2qLRKPPSE9M0IZPJ2KLRKPNRKkopfDgu1xEuXjeRSEAqleJyBUGAdDrN5RYKBe59paoqt2sYRkU14nUB+GsUj8e5a5ROp7ldURS566soCmFZYVdWcF0uF/X7/XD48OHLpk+f3jQwMODIZDL2mpoaeuHChdmjo6N/CwQCJ1knSwixx2KxlYFA4ASrSym1xWKxzwcCgS5WFwAgFotdy+NmMpnaSCTSFAgEzrG6oij6IpHIFYFA4AyrqyiKJxqNLgkEAj2srqZprtHR0WWBQOAUq2uapiMWi/1HIBDoZnUrrBG3m0ql6sLh8KxAIDDA6gqC4I9EIvMCgcBZVrdQKHij0eiiQCDQx+oWi8UqTdOqyhY+vtj5k/4URXE+++yzt+7Zs+e6fD7vfe211xaW/k3TNMfrr7++vJzt/Pc/wzBs+/btu5rHpZTCnj17/uNSu8lk0n/06NFFPK4gCN62trYlPK4kSVWHDh1q4XGLxaLzjTfe4KqRruv2/fv3r+Ddz3v37r3k9R0bG6vt6OhYyOOm0+nq9957bzGPm8/n3W+//fbneFxZll1vvvnmVeU+vqzfuB6Px/jmN7/55ubNmztramqUO+64I1j6t7a2tsuTyaSvUCgwd6nv7Oy8ora2lusqjN27d18pCEJ1Npst/13qQ1599dXLs9msP5VKeVhdr9dbGBoaqs3lcszNZhOJxMx4PH5ZPp/3sbrJZNIejUbrjx49OpPV7e/vr0ulUnMOHz68mNV99913r0gkErWhUIh5Px85cmRBIpHw5nK5slehFYtF5wsvvLBheHi4PpvNVu3du3dhua6mafadO3euKxQK7v7+/sbTp09PL9c1DMP297///fpMJjMtHA437N69e0m5LiHEtnv37uvi8fhMURS9u3btWqZpWtmv69dee21VNBqd09LSEnrhhRdWluNUdFQ5k8k4fvnLX1578ODB2mPHjjWx+uPj4+Irr7xS9g76OA0NDcl33nmn/sCBA7NYXVmWc7///e8XtbW1zWF133nnnbkPP/zw/04kEszdmk+cOHHle++959M0jfl2Ek899dTKffv2zQmFQszu4sWLhd7eXiMYDDJ1Hy8UCrZHH310zU9/+tMVoVCIqcO0LMv2H/7wh9c9/fTTsw4ePFh2+Gw2G3nllVeqe3p6lnV0dEx//vnnrzVNs6wQ2Gw2unfv3qpwODw7GAxWvfXWW7PLHdfpdNJDhw7ZBwcHmxoaGoLPPffcKlmWy3rDsdvt9MiRI6Svr2+u0+nM//GPf1xbLBbLfrPq7OzUOzo6Fv76179e+fjjj1+fSqU+9flWFFxKqa2qqorOnDlTNk2TuVX6/PnzRZvNZvKMHQ6HfYVCwX3zzTcz30Nm2bJlxRUrVoyKouhmdY8cOfL5yy67rDYcDpf9oigxe/bsky6XK/+nP/1pOasrSVJNU1OT2tXV9XlW1+l0mv39/TNvvPHG8yyeaZo2l8ulzZgxI65pGtM3jOrqanLfffedcrvdjbqul/0idrvdpKmpKUcpdc6dO1dpbGwse0yXy0Xnzp2b83g85LrrrsuzzBcA4PLLLxccDgft6+tbNG/evAvV1dVlHy2aP3++YLfbobm5Of1h/+iyszV//vxcT09PdW9v79V+v78pHo9/6jfBioI7ffp0Y9OmTUNVVVX1K1eujLL6+Xx+QV1dXX0oFGL+9BoeHl52ww032PL5PPPX3cOHDzfPmTPHu379+nFW9+c///nehx56aFdLS8sIqzswMNAwbdq0+ttuuy3E6n7729/urq+vd65Zs2aQ1c1kMo5169aF5s+fL7N4tbW15Gtf+1pk1apVZNasWUnWcWfPnm1fv379yIYNG4bKdVRVdc6dO3duKBRyS5LkX7BgwVC5d1zRdd0xZ86cy7u7uxcMDQ1d7vf7FxBCyvq0NgzDPn369PlnzpxZGI1Gr7rhhhtchmGU5RJCbH6//4qhoaHL33jjjdVr166NuVwuvRwXAMDtdl8xd+7cmp07dz73rW99a+/8+fOLn+bYKMXrhRHEauCVUwhiQTC4CGJBMLgIYkEwuAhiQTC4CGJBMLgIYkEwuAhiQTC4CGJBMLgIYkH+PwdzHyydJxCfAAAAAElFTkSuQmCC"
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\u001B[35m\u001B[1mBob\u001B[0m\u001B[35m\u001B[0m: {\n",
      "    \"thought\": \"As the game has just started, I will place my piece near Alice's to prevent her from forming a line and to start building my own line.\",\n",
      "    \"move\": [\n",
      "        7,\n",
      "        8\n",
      "    ]\n",
      "}\n",
      "\u001B[36m\u001B[1mHost\u001B[0m\u001B[36m\u001B[0m: The current board is as follows:\n",
      "000000000000000\n",
      "000000000000000\n",
      "000000000000000\n",
      "000000000000000\n",
      "000000000000000\n",
      "000000000000000\n",
      "000000000000000\n",
      "0000000ox000000\n",
      "000000000000000\n",
      "000000000000000\n",
      "000000000000000\n",
      "000000000000000\n",
      "000000000000000\n",
      "000000000000000\n",
      "000000000000000\n",
      "Alice, it's your turn.\n"
     ]
    },
    {
     "data": {
      "text/plain": "<Figure size 432x288 with 1 Axes>",
      "image/png": "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O/m+++77P4FAgLtb8+HDh2fu27fPkcvluG8n8cQTTyzYvn37xL6+Pm539uzZsY6ODsXtdnN1H0+n04YHHnhg8S9/+cv5fX19XB2mM5mM8ac//ekVTz/99Phdu3YVHT6DwaC9+uqr5e3t7XObm5trN23adLmqqkWFwGAwsG3btlk9Hs8Et9ttffvttycUO67ZbGa7d+82dnd3TxozZoz7ueeeW5jJZIp6wzEajWzv3r1aZ2fnZLPZnPjTn/60JJvNFv1m1dLSkm9ubp7x+9//fsFDDz30xVAo9LnPt6TgMsYMVquVjRs3LqOqKner9GnTpiUNBoMqMrbH43Gk02nbNddcw30Pmblz52bnz58/mEwmbbzu3r17v3DBBRdUejyeol8UBSZMmHDEYrEk/vznP8/jdVOpVMWkSZPk1tbWL/C6ZrNZPXHixLirrrrqNI+nqqrBYrHkxo4d68/lclzfMMrLy7U777zzqM1mq8vn80W/iG02mzZp0qQ4Y8w8efJkqa6urugxLRYLmzx5ctxut2tXXHFFgme+ADBlypSYyWRinZ2ds6ZOnXqmvLy86KNF06ZNixmNRtTX14c/7B9ddLamTZsWb29vL+/o6LjU6XRO8vv9n/tNsKTg1tbWKitXruyxWq01CxYs8PL6iURienV1dU1fXx/3p1dvb+/cpUuXGhKJBPfX3ffee69+4sSJZcuWLRvmdR9++OFt995770sNDQ39vG5XV9eYqqqqmmuvvbaP1/3ud7/bVlNTY168eHE3rxuJRExXXnll37Rp0zI8XmVlpfbNb35zYOHChdr48eODvONOmDDBuGzZsv7ly5f3FOvIsmyePHny5L6+PlsqlXJOnz69p9g7ruTzedPEiROntLW1Te/p6ZnidDqna5pW1Ke1oijG2traacePH5/h9XovWbp0qUVRlKJcTdMMTqfzwp6enilvvvnmoiVLlvgsFku+GBcAbDbbhZMnT67YvHnzc9/+9re3TZs2Lft5joExul6YIPQGXTlFEDqEgksQOoSCSxA6hIJLEDqEgksQOoSCSxA6hIJLEDqEgksQOoSCSxA65P8D2qq520he9+8AAAAASUVORK5CYII="
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\u001B[32m\u001B[1mAlice\u001B[0m\u001B[32m\u001B[0m: {\n",
      "    \"thought\": \"My opponent placed his piece next to mine. I should block him and also try to create a potential line for myself.\",\n",
      "    \"move\": [\n",
      "        7,\n",
      "        6\n",
      "    ]\n",
      "}\n",
      "\u001B[36m\u001B[1mHost\u001B[0m\u001B[36m\u001B[0m: The current board is as follows:\n",
      "000000000000000\n",
      "000000000000000\n",
      "000000000000000\n",
      "000000000000000\n",
      "000000000000000\n",
      "000000000000000\n",
      "000000000000000\n",
      "000000oox000000\n",
      "000000000000000\n",
      "000000000000000\n",
      "000000000000000\n",
      "000000000000000\n",
      "000000000000000\n",
      "000000000000000\n",
      "000000000000000\n",
      "Bob, it's your turn.\n"
     ]
    },
    {
     "data": {
      "text/plain": "<Figure size 432x288 with 1 Axes>",
      "image/png": "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"
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\u001B[35m\u001B[1mBob\u001B[0m\u001B[35m\u001B[0m: {\n",
      "    \"thought\": \"I see Alice is trying to create a line horizontally. I need to block her next move otherwise she will have a chance to win. I will place my piece at [7, 5].\",\n",
      "    \"move\": [\n",
      "        7,\n",
      "        5\n",
      "    ]\n",
      "}\n",
      "\u001B[36m\u001B[1mHost\u001B[0m\u001B[36m\u001B[0m: The current board is as follows:\n",
      "000000000000000\n",
      "000000000000000\n",
      "000000000000000\n",
      "000000000000000\n",
      "000000000000000\n",
      "000000000000000\n",
      "000000000000000\n",
      "00000xoox000000\n",
      "000000000000000\n",
      "000000000000000\n",
      "000000000000000\n",
      "000000000000000\n",
      "000000000000000\n",
      "000000000000000\n",
      "000000000000000\n",
      "Alice, it's your turn.\n"
     ]
    },
    {
     "data": {
      "text/plain": "<Figure size 432x288 with 1 Axes>",
      "image/png": "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"
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\u001B[32m\u001B[1mAlice\u001B[0m\u001B[32m\u001B[0m: {\n",
      "    \"thought\": \"My opponent is trying to block me. I should place my piece at [7, 9] to create a potential line for myself.\",\n",
      "    \"move\": [\n",
      "        7,\n",
      "        9\n",
      "    ]\n",
      "}\n",
      "\u001B[36m\u001B[1mHost\u001B[0m\u001B[36m\u001B[0m: The current board is as follows:\n",
      "000000000000000\n",
      "000000000000000\n",
      "000000000000000\n",
      "000000000000000\n",
      "000000000000000\n",
      "000000000000000\n",
      "000000000000000\n",
      "00000xooxo00000\n",
      "000000000000000\n",
      "000000000000000\n",
      "000000000000000\n",
      "000000000000000\n",
      "000000000000000\n",
      "000000000000000\n",
      "000000000000000\n",
      "Bob, it's your turn.\n"
     ]
    },
    {
     "data": {
      "text/plain": "<Figure size 432x288 with 1 Axes>",
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAO4AAADnCAYAAAAZ4WrqAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8o6BhiAAAACXBIWXMAAAsTAAALEwEAmpwYAAAlPUlEQVR4nO2deXRU5f3/33eWzCQz2UCWRLaCAYSAX6WyqNCftixKxR81tLWidq+tHrucnm6nPV2O/mprj61d9LSn1lYsQsFaFtlcAhZIQgiQhDAkITPJZDKTzL7P3Jl77/P7Q4dv/RZlnicEvtd+Xufk9FjmdZ9n7mfes9x7n/uRGGMgCEJfGK70BAiC4IeCSxA6hIJLEDqEgksQOoSCSxA6hIJLEDqEgksQOoQ7uGfOnKnatGnTsuHh4bKxmBBBEBdH4r0A45577llZXV2t1NbWpr///e+3yLJsYowZx2h+BPEfg8lkUkwmk1rUY3k3riiKae7cuX6/318py7Jh165dHzx58uSj9fX1Nbzb0jQNp0+fxsKFC3lVMMbQ0dGB6667jtsFgPb2diE3mUxiZGQEs2bN4nYzmQwGBwcxe/ZsbleWZTidTlx77bXcrqIo6O7uxvz587ldTdPQ1dWFBQsWcLuMMXR2dl72+sbjcQSDQcycOZPbTaVS8Hq9qKur43az2Sz6+/sxd+5cbjefz7PS0tL/t2HDhs1FCYwxrr+//e1vMz7/+c9/vLW1dQJjDLIsm1944YUOJkA+n2fPP/+8iMo0TWN//vOfhd3nnntOyPV6vWzv3r1CbjAYZDt27BBy4/E427Ztm5CbTqfZ5s2bhdxcLsc2bdok5Kqqyv7yl78IuaOp0eDgIDtw4ICQOzIywnbv3i3kRiIR9ve//13ITSaTytatWx9kReaQ+xN3w4YN/Rs2bOjn9QiCuHTQUWWC0CFXNLiSJF3J4QlCt1zR4DJaUkgQQtBXZYLQIRRcgtAhFFyC0CEUXILQIRRcgtAhFFyC0CF0HpcgdAh3cA8fPjz1+9///r2XYnA6j0sQYnBfqzx9+nSfw+HQNE2TNE3DmTNnprjdbsupU6e4B9c0DW63GyIuY0zYBYDBwUEhNxgMwul0CrmxWAwul0vITafT6O/vF3JzuRwGBgaEXFVVhd0rVaORkRHhfRWJRITrm0wmheubzWYhy3LRj+cOriRJZlmWK2KxmLW8vDyraZrEGIOmabybgqZp5/9EEB33X8cWGVN03NG4mqbpzh3N8y34/0n7mQfu4BoMBusXv/jFnlAoVFZdXZ2pr68fdDgc8g033MC7KSiKAofDARGXvb3WU9Tt6OgQcn0+H1RVFXJDoRDi8biQm0gkMDw8LORmMhm4XC4hN5/Po7u7W8gtrOW93DXyeDwwGo1Crt/vRzabFXKj0ShCoZCQm0ql4PF4in48d3Bra2sj69ata+T1CIK4dNDpIILQIRRcgtAhFFyC0CEUXILQIXTlFEHoELoDBkHoEPqqTBA6hIJLEDqEgksQOoQ7uJFIxOL3+ysVRaEjSwRxheC+5PGPf/xjjcPhuHHFihWnPv3pT/eOxaQIgnhvuIN7//33Dz788MPzKyoq0oWmX83NzXajkb9hn6ZpaG5uhtls5nYZY2hpaYHFYuF2AaClpQVWq5Xbi0ajGBgYQDQa5XaTySS6u7uRTqe53Uwmg46ODiiKwu3mcjkcP35c6PSbqqpoamqCycT9Ujlf35KSEm63UF+RGoVCIXi9XoRCIW43Ho+jr68PiUSC202n0+jq6uJanldAlmWu2nJX47HHHltcWlo6Y968eU0Wi0VbtWpVezKZTN111128m4KqqshkMhBxGWNIJpNCLvDWahsRd3h4GJ2dnVi5ciW3Gw6HUVVVhbVr13K7iUQCFotFaM7ZbBYAhFxFUSDLspCraRrS6fRlr+/Q0BC6u7tx2223cbuBQABtbW1Ys2YNtxuLxWCz2bBu3TpuN51O49VXXy368dzB/fGPf3wql8t122y2BABYrda82WxmpaWlvJuCoigoKSmBiMsYG5VrNpuFXKvVKjzuaNzR7CsAws83n88Lj6tp2n9UjWRZHtW+MhiKP+TEHdzq6uoMgAyvRxDEpYNOBxGEDqHgEoQOoeAShA6h4BKEDqHgEoQOoeAShA6h4BKEDqHgEoQOoeAShA7hDu6RI0eu2r1796JgMMh/9TdBEJcE7ksenU6n/Oyzz87++Mc/nv3KV77SpSiKUdM0oVUrqqpCVVUhlzEm7AJvXRt6uec8GldRlFGNK/p8RzOupmmjqu9o5qzH+vLcg407uEuXLs20trb60+m0+e1lfYuamprKebcD/PeyL5ElgcBbS/NElgQCEF5OGIvF4Ha7EQ6Hud1UKoWenh4kk0luN5vNorOzE7lcjtvN5/Noa2sTbkbV3NzMdQF8AcYYmpubhZYEAuL1jUQi8Hq98Pv93G4ikYDT6UQsFuN2M5kMzpw5g0yG/1J+3rpy79Fdu3Z9wGg0Vi9btsxhsVi09evXH1MUJXHvvfwtcxVFgcFgwH333cftFt6RRV1VVYVcn8+H9vZ2oWVfoVAIR44cEVr2lUgkUF1djYaGBm43k8mgtLQU99xzD7ebz+dhNBqxceNGbrfwRnG5a+TxeOBwOISWXvr9frS2tgotvYxGo2hsbMT69eu53VQqhVdeeaXox3MH9xvf+EYvgEty5wu6rzJBiEH3VSYIHUKngwhCh1BwCUKHUO8ggtAh9BuXIHQIfVUmCB1CwSUIHULBJQgdQsElCB1CR5UJQodwBzcWixm+9rWv3enxeMaPdnA6qkwQYnBfq7xjx45rXnzxxWmf//zn22tqasJ9fX2TfD6f+ezZs9yDa5oGn88HEZcxJuwCb/UAEnGDwSA8Ho+QG4vFMDQ0JOSmUil4vV4hV5Zl4X2lqqruajQyMiJco3A4LOwmEgnh+mYyGa4VQtzBjUajU6655poJLperZs6cOYPRaNSWSqWMIsvcNE1DMpkUWiIHvPViFnVFx41Go0gkEkJuPB4XdjOZjPCcc7mcsKuqqrDLGBtVjUTd0dRoNG4qlRLeV9lslmvZJXdwH3nkkTduvPHGrrlz5ybNZjNbtGiR0+l0Zm+66SbeTUFRFLhcLoi4jDH09vYKuz09PUKuz+eDyWQSckOhEHK5nJCbSCQQiUSE3EwmA5/PJ+Tm83kMDAwIuZqmoa+v77LXyOPxoKysTMj1+/1gjAm50WgUyWRSyE2lUggGg0U/XmiF87Jly0ZEPIIgLg10OoggdAidDiIIHUKLDAhCh9BXZYLQIRRcgtAhFFyC0CEUXILQIXRUmSB0CB1VJggdwh3cgYGBmr179y5NJpOlYzEhgiAuDvclj2+++eb81tZW67JlyxgAvN30S8rn89yDF5okibiFFhUibmFsEbfQBIvci1No+iVaI03TdPV8R+uOadOvKVOmnDx8+PANzz777LyHH3741NtNv+wiv1cLDaVEmkIxxtDS0oKSkhJuFwCOHTsGi8XC7UWjUbjdbkQiEW43mUyip6cHqVSK281ms+jo6BB6UeTzeRw/fpzbA956gxNtzFaokWhjNtH6hsNheL1erov2C8TjcTidTsTjcW43nU7jzJkzyGaz3K4sy1yP507MqVOnqmw2W+WyZcu6LkXTL0mShBpKFZp+ibqKogi5V7LpV1VVlXDTL6vVekWafjHGLnuNqOnXBfj617/eB6CP1yMI4tJB53EJQodQcAlCh1BwCUKHUHAJQodQcAlCh1BwCUKHUHAJQodQcAlCh1BwCUKHUHAJQodwB/fgwYMTvv3tb697+eWXJ47FhAiCuDjc1yr/+te/XipJUun1118vqaoqnTt3brLX6y1xOBzcg6uqCq/XCxGXMSbsAm8tFhBxA4EA3G63kBuNRjE4OCjkplKp8xfP8yLLMoaGhoRcRVGE97OmaaOqr2iNhoeHhWsUDoeFa5RIJIRrNOZNv6ZNmyYDyJ4+fXp+Q0ODP5FIlGYyGUMsFuPdFDRNQzqdhojLGEMmkxFyAQi7iURCeM6jcdPptPCcc7mcsKuqKtWoSJLJpLB7OZp+NR0/fnx+XV2dw2Qyseuvv9517ty57NKlS3k3BUVR0NfXBxG30BRK1D179qyQ6/P5YDQahdxQKIRsNivkFjrIibiZTAZDQ0NCbj6fh8vlEnI1TUNvb+9lr5HH40FpaamQ6/f7oaqqkFvo9CfiplIp+P3+oh/PHdyZM2cmZs6c2czrEQRx6aCjygShQyi4BKFDKLgEoUMouAShQ4Q60l8q/hM6GTDGkM/n4fV60d3djbNnz2LOnDmYOnUqSktL33MfFFy/34+BgQEMDAzA6XSipqYGVqu1aNfj8cDtdnO7Xq8XHo8Hvb296O7u5p7zyMgIBgcHix6XKJ4rGtz3cyeDwn2fDx48iKeffhotLS0IBAJQVRVPPPEE5s+fj89+9rNoaGj4tzAU3OPHj6OnpwcTJ07EpEmT8OEPfxj9/f04evQoJkyYgOXLl1/QVRQFbW1t73BXr1593p04cSJuueWWC4Ywn8+fn/OxY8fOz/npp59GfX09Pve5z+FjH/tY0eOuXbu2qHEJPq5ocN/PZLNZPP7443jqqaf+7YR8MBjEoUOH0NzcjFdffRW/+MUvMGnSpHe4u3fvRm1tLT7xiU+gpKTk/Au9EOqenh5s374dd9xxB8aPH3/+34txu7u7L+hmMhn87Gc/wy9/+ct/u69wMBjEwYMH0dTUhH379uHJJ5/EhAkT3jHurl27cPXVV1903LVr12LcuHEU3lFAv3HHAFVV8fvf/x6PP/74e15FI8syNm/ejO985zvIZDLn3QMHDmDevHm46aabYLFY3vEClyQJJpMJ1157LVatWoW9e/eev5m2qqrYv3//Rd158+Zd0H3mmWfw+OOPv+fNwGVZxosvvojvfOc7511N07Bv3z7U19dfdNyVK1diz5493DcAJ94JBfcSwxhDd3c3nnjiiaKuPdU0DVu3bsWePXvAGIPL5Tr/In+vTyRJkjBp0iQsWLAAzc3NYIzB6XSipKSEy21paXnHnIsJlKZp2LJlC/bt2wfGGM6dOwer1Yq5c+dedNzJkydj/vz5OHbs2Pv6p9JYwx3cRCJhjkQi5ZlMRqyvxH8AL7/8Mnw+X9GPz2QyeP7556GqKtrb27F48eKivkZKkoR58+bB7XZDURRhN5/PY/v27RgZGeGa86ZNm5DL5dDe3o4lS5bAYLj4y0mSJNTX12NgYEC4pxAhENyOjo5JDz744Cf++te/1o/FhPSOpmk4cuQI96fJmTNn4Pf7kU6nMX78+KI9s9mMiooKBINBZLNZjBs3jsu12+0IhUI4fvw495xPnjyJcDiMfD6PyspKrnHLy8uRSCS4xiP+G+6DUzfffLPn5z//eXT58uV9siwb9u7de/2xY8fsIg20NE1Da2srSkv5O3YyxtDa2gqbzcbtAsDx48dht9u5vWg0iv7+fiSTyQv+ez6fR39/P/d2R0ZGsGXLFlgslqI+uQpIkgSz2Yxt27bBbDZzHfCRJAlGoxHbtm0TXqa4ffv2f/tNW+zYf//731FdXf2ujxGtUSgUwtDQkNAqnXg8jnPnzp0/5sBDOp3G6dOnoaoqtyvLMtfvfu7g9vT02K1WqzJnzpw4AKxYscIRCoXSq1ev5t0UVFVFLBaDiMsYQzgcFnKBt46SirgjIyPo7OzERz7ykQv+u6qqePbZZ7mDMH78eKxduxZNTU3QNK3o8BbOm65ZswbNzXxrPwpHe2+//Xbs2bMH586d4/LLy8uxevVqod+rjDGsWrXqXb8hMMaEazQ0NISenh7ceuut3G4wGERFRYXQuLFYDCaTSchNp9NobGws+vHcwb366qvTv/nNb/YV/ttut2etVqtWXl7OuykoigKr1QoRlzF2RdxkMonS0tJ3dRljWLZsGV5//XWu7c6ZMwczZ85ER0cHotFo0V95FUVBPB7HjBkzcOrUKcRiMVRVVRXtJpNJTJs2DYsWLcL+/fu55rxgwQJMnToVJ0+eRDKZLPrrsqqqSCaTmDx58ru2Oh1Njex2+3vW6L3IZDLCrqqqwq7BYOD6psX9G9dms2kTJ07kbwB6Ad6v5/HuvvtuTJgwoejHl5SUYOPGjTCZTKivr0dbW1vRn2Dnzp1DTU0NzGYz6uvr0draWpTLGENvby9qampQUlKChoYGrt/WJSUluPfee2G1WrnHPXv27PlxCTGu6Omg9+PpgMJR04cffrioht2SJOHOO+/EXXfdBUmSUFdXh2g0CqfT+Z77p/BT4dixY7jpppsgSRJmz55dtBuJRNDa2oply5ZBkiQsWLAADz30UFFNqCVJwrp163DnnXdCkiTMmTMH4XAYLperqHHb2tqwdOnS9+0b9+Xgigb3/Vo4k8mEr3/963jwwQff88Cb0WjEHXfcgSeffPL81yuTyYTbb78dzc3NOHXqFBRFeUcYCg29BwYGsHPnTqxcuRJlZWUXdFVVvaDb399/Qfeb3/wmvvzlL8Nqtb7nc7v99tvx5JNPnj8wWPj/jh49ivb29ncd1+VyYefOnVi1atX5cQkx6FrlMcJut+OJJ57A8uXL8cwzz6C9vR2xWAyMMdjtdsycORMPPPAAPvOZz/zbb0ObzYaGhgYcOXIEW7ZswbRp01BTUwOj0YhAIID+/n5YLBasX78eFRUV73gD/Ff3xRdf5HLtdjt+9rOf4eabb8bvfvc7dHZ2vmPOs2bNwqc//Wk88MADqKys/Df3vcZ1uVwoLS294LgEP3St8hghSRKsVis2bNiAtWvXwul04vTp0+jq6sK6detQV1eHysrKCx6QkCQJFosFt956K9LpNDweD1wuF9ra2vDRj34Uq1evRkVFRdGu2+1GU1MT7rrrrou6hTnfcccdcDqdcDqdePPNN/HJT37yonO2Wq247bbbzo/r9XrR2NiIu+++G2vWrHnXcQl+KLhjjCRJsNlsWLBgAWpra2Gz2bB48WIud86cOaitrUU8HseCBQu43WnTpsHv93O5drsdCxcuxLXXXotkMik057q6OgwMDBQ9LlE89PZHEDqEgksQOoSCSxA6hIJLEDqEO7hut7vitddeu66np2fUJ+LolABBiMF9VPmHP/zhjYcOHZr94IMPGr71rW+d1DRNKpxg50XTNIi6jDFht+Bf7nFH416pfTWacfU459HWV9O0Uc25WLiDq6oqGz9+fMhkMllkWTa8/PLLi48cOVIuOtmmpiZuD3hrJx09elT4vODRo0dhNBq5vWg0CrfbjUAgwO0mk0n09vYKN4Xq7OwUWm6Wy+Vw4sQJKIrC7aqqev4uGbxomoajR48KfbNijKGpqUmoRuFwGD6fD8PDw9xuPB6H0+lEOBzmdtPpNM6cOYNUKsXtyrLM9VrmDu7y5cvDyWRycnV1td9isWh33313i6ZpiXvvvZd3U1AUBUajEffddx+3W3gh3X///UKupmlCrs/nQ3t7O9asWcPthkIhHDlyBOvWreN2E4kExo0bh4aGBm43k8nAZrPhnnvu4Xbz+TzMZjM2btzI7RaWJ4rWiDEm5BZaXa5cuZLb9fv9aG1txdq1a7ndaDSKxsZGrF+/nttNpVJ45ZVXin48d3C/8IUvnPrCF75witcjCOLSQUeVCUKHUHAJQodQcAlCh1BwCUKHUHAJQodQcAlCh1BwCUKHUHAJQodQcAlCh9BdHglCh3AHd9euXbMeeeSRdR0dHe/e9KVI3s93eSSIsYT7WuXNmzfXeTwe9re//e2GhQsXvu52u68KBAJmp9PJPbiqqvD7/RBxGWMIBAJCLgBhNxAIYHh4WMiNRqMYGRkRclOplPC+kmVZ2FUURXc1Gh4eFq5ROBwWdhOJhHB9M5kMV9tR7uA+8sgjx5955pnbzGZzIJ/PS16vtzoUCpkGBwd5NwVN0xAOhyHiFu7kL+ICEHbD4TACgYCQG4/Hhd10Oo1gMCjk5nI5hEIhIVdV1VHVSHRcQLxGgUBAeD9Ho1Hh/ZxMJoXdbDbLteySO7hXXXWV8dZbb/WuXLnylNlsZkuXLu0dHBzMfOhDH+LdFBRFgcfjgYjLGMPAwICw63K5hFyfz4fS0lIhNxQKgTEm5CYSCaRSKSE3k8kgGAwKufl8Hl6vV8jVNA1ut/uy18jj8aCyslLI9fv9MJlMQm40GkUulxNyx3xZX11d3UhdXV3xrcsJgrjk0OkggtAhFFyC0CF0HpcgdAj1xyUIHUKfuAShQ+gTlyB0CB2cIggdQsElCB1Cv3EJQocUFVxZlo2NjY3XjYyM2F577bW5LS0tky7F4PQblyDEKOqSR1VV8dOf/vSahx56yLZ169aJsiyXbNu2bZvBYGCaphkYY1BVlXvwQoMkERd4K/iX2x3NnEfrjmbOV+L5Flq9XIka6bW+xVJUcMvKytRZs2b5AFgXL14cHBgYuBoA3m76deNom36JNoUaTdMv0YZSsVgMAwMDCAaD3G6h6Vc8Hud2R9P0K5/Po62tbVRNv0S4UjUabdMvl8uFSCTC7abTaTgcjv89Tb+y2azZZrPNOn36dMzlclknT57sNRgMzGKxMGr6VTxXsulXWVnZFWn6JUnSZa8RNf16G6vVmv/FL36xiXs2BEGMCXRUmSB0CF05RRA6hC7AIAgdQsElCB1CwSUIHULBJQgdQsElCB1CwSUIHULBJQgdQsElCB1SVHATiYT5u9/97ob29vbar371q3cfPnx4wlhPjCCId6eoa5XLy8vzg4ODfsaYtaamJnj27Fn7LbfcEgCAgYGBCX6/39zX18c9eKHpl4jLGBN2gbf6y4i4gUAAPp9PyI1GoxgeHhZyU6kURkZGhNxC0y8Rt9D0S8TVNO2K1Gh4eFi4RoWVRSJuIpEQru+YNf2yWCzmbDZrraqqMudyOSsA5PN5aXh4uDISiZiGhoa4J6tpGiKRCERcxpiwC0DYDYfDCIVCQm48Hhd20+k0wuGwkJvL5YTdQtMvPdUoEAggGAwKudFoVLhGyWRSeF+NSdMvWZZNK1eu1IaGhuxVVVXauHHjbABgNpvZkiVLzrnd7syKFSu4J6soCgYHByHiMsbQ398v7DqdTiHX5/PBarUKuaFQCJqmCbmJRALJZFLIzWQyCAQCQm4+n8fQ0JCQq2kaBgYGLnuNPB4PKioqhFy/3w+j0SjkRqNRyLIs5I7Jsj6LxaJ88pOffIN7NgRBjAl0VJkgdAgFlyB0CC2kJwgdQgvpCUKH0FdlgtAhFFyC0CEUXILQIRRcgtAhFFyC0CFFBzeVSlkVRTEkk0lrOp3m7wtBEMQlo6jgxmKxkoaGho1Hjx6t++53v/t/HnnkkVVjPTGCIN6doq5VrqyszE2bNs1x1VVX5RoaGhy//e1v5wFALpczHDhwYOGJEydsdrude3BN03DixAlUVFRwu4wxnDhxAlVVVdwuAJw8eRLV1dXcXiQSgcvlgizL3G4ikYDD4RA6f53JZHDy5EmYzWZuN5fLoa2tDWVlZdyuqqpoa2tDeXk5t1uoUWVlJbcLiNcoFArB4/EgnU5zu7FYDL29vUIN0lKpFDo7O4WanMmyzNUsrKjg5nI5YzKZnHbw4MHyP/3pTwsffvjhVwCgpKREW7x4cZ/X680sX76ce7KqqmJkZAQiLmMMXq9XyAXeWkEi4vr9fthsNiE3EonAYDAIuclkEtlsVsiVZRmxWEzIVRQFgUBAyNU0DT6fT7hGQ0NDQq7X60V1dbWQGwwGUVJSIuTG43GoqirkptNp/POf/yz68UUF12g0ao899tghVVXZ6tWru6xW6/m3hqqqqpTNZtPGjRvHPVlFUWCz2SDiMsauiCvLMsrLy4XHtdvtQq7ZbBZ2M5mM8PPN5/PCrqZpo6pRWVmZkJtOp4X3laIowvU1GAzC41osFq6WosUGl82YMcPLPRuCIMYEOh1EEDqEgksQOoSCSxA6hIJLEDqEgksQOoSCSxA6hIJLEDqEgksQOoSCSxA6pKjg5nI5Q0tLy9xgMGhvaWmZ097eftWlGJzu8kgQYhR1yWM+n5e+973vLfzRj36knj17tmr37t3X79ixYwsAMMakt/+Xe3DG2Pk/EVd03P+5DRHvco+rx+c7mvr+6zZEnStR39E+32IpKrg2m02dPXu2p7q6WqmrqwtJkjQDAGRZNrz00ktL/vnPf5aLLIPSNA1NTU3CxTly5Ai396+uyCd+NBrF4OAg/H4/t5tMJtHb24tIJMLtZrNZdHZ2ci39KpDL5XDixAnkcjluV1VVtLS0QNM0brdQXxFGU6NCxz2vl//y+ng8DpfLhVAoxO2m02k4HA4kEgluV5ZlruWARQU3m82aTSZT3c6dOycaDAb1mmuuCQGAxWLRGhoamhljiXvvvZd7soqiwGQy4b777uN2GWOQJAkPPPCAkAtAyPX5fGhvb8eaNWu43VAohCNHjmDdunXcbiKRwP79+9HQ0MDtZjIZ2O123HPPPdxuPp9HSUkJNm7cyO1qmgaj0Yj777+f2x1NjTweDxwOB1auXMnt+v1+tLa2Yu3atdxuNBpFY2Mj1q9fz+2OSdMvq9Waf+qpp54v7Eyj0Uh3MieIK0jR/XENBgOFlSD+l0C9gwhCh1DvIILQIXQBBkHoEAouQegQ+o1LEDqEfuMShA6hr8oEoUMouAShQyi4BKFDigpuMpk0P/roo/93ZGRk3IEDB2b+7ne/WzTWEyMI4t0p6pJHi8WidHV1xU6fPj3xqaeeWqiqqvzQQw+1AYDP56uKRCKSx+PhXnqiqirC4bDk8Xi4j1IxxvD2uEJHuERdv9+PYDAo5EajUYRCISE3lUoJ7ytZloVdRVFGVSNRFxCvkc/nE65RKBQSdhOJhHB9M5mMxrPCrqjgms1mZrfb8cYbb1w9fvz42p6eHmM4HDaUl5ezc+fOTRoaGvqrw+E4wTtZTdMMXq/3BofDcZzXZYxJXq/3gw6Ho5XXBQCv13ujiBsOhysGBwdrHQ7HWV43kUjYBgcHP+BwOE7zuplMxurxeOY4HI52XjeXy5mHhobqHQ7HSV5XVVWj1+v9L4fD0cbrjrJGwm4wGKxyu90THQ5HD68bjUbtg4OD0xwOxxleN5VKlXo8nmscDkcnr5vNZktyuVxJ0cK/LnZ+t79MJmP605/+tGbHjh1L4vF46T/+8Y+ZhX/L5XLGV155ZUEx2/mff4qiSLt27bpOxGWMYceOHf91ud1AIGA/fPjwNSJuNBotbWxsnCPiJpPJkgMHDswTcbPZrGnPnj1CNcrn84bdu3cvFN3PO3fuvOz1HR4ermhqapop4oZCobI333xztogbj8ctr7322rUibjqdNu/bt29+sY8v6jeu1WpVPvOZz+xbt25dS3l5eeauu+5yFv6tsbFxaiAQsKVSKe4u9S0tLR+oqKgQugpj+/bts6LRaFkkEin+XeptXn755amRSMQeDAatvG5paWmqr6+vIhaLcTeb9fv9E3w+39XxeNzG6wYCAYPH46k+fPjwBF63q6urKhgMTn7jjTdm87oHDx78gN/vr+jv7+fez4cOHZrh9/tLY7FY0avQstms6YUXXljhcrmqI5FIyc6dO2cW6+ZyOcPmzZtvSaVSlq6urppTp06NL9ZVFEXasmXLTeFwuNLtdo/bvn37nGJdTdOk7du3L/H5fBMSiUTp1q1b63O5XNGv63/84x+LPB7P5Hnz5vW/8MILNxTjjOqocjgcNj7xxBM37t+/v+Lo0aO1vP7IyEjipZdeKnoH/Svjxo0LvP7669V79+6dyOum0+nY008/fU1jY+NkXvf111+f8o1vfOPDfr+fu1vz8ePHZ7355pu2XC7HfTuJ3/72tzfs2rVrcn9/P7c7e/bsaEdHh+J0Orm6j6dSKel73/ve0p/85CcL+/v7uTpMp9Npww9+8IMlf/zjHyfu37+/6PBJkqS99NJLZe3t7fVNTU3jN23adKOqqkWFQJIktnPnzhK32z3J6XSWvPrqq5OKHddkMrEDBw4Yent7a8eNG+d87rnnFqXT6aLecAwGAzt06JDW2dk5xWQyxX//+98vy2azRb9ZtbS05Juammb+6le/uuHRRx+9KRgMXvT5jiq4jDGppKSETZgwIa2qKner9OnTpyckSVJFxna73bZUKmX5yEc+wn0Pmfr6+uzChQuHEomEhdc9dOjQB6+++uoKt9td9IuiwKRJk06Yzeb4H/7whwW8bjKZLK+trZVbW1s/yOuaTCa1q6trwoc+9KFuHk9VVclsNueuuuoqXy6X4/qGUVZWpn3xi188abFYavL5fNEvYovFotXW1sYYY6YpU6Zkampqih7TbDazKVOmxKxWq7ZkyZI4z3wBYOrUqVGj0cg6OzuvmTZt2rmysrKijxZNnz49ajAYUFdXF3q7f3TR2Zo+fXqsvb29rKOj4zq73V7r8/ku+k1wVMEdP368snr16r6SkpLqG264wcPrx+PxGVVVVdX9/f3cn14ul6v+5ptvluLxOPfX3TfeeKNu8uTJpcuXLx/hdR9//PGdX/va17bOmzdvgNft6ekZV1lZWX377bf387pf+tKX2qqrq01Lly7t5XXD4bDxlltu6Z8+fXqax6uoqNA+9alPDS5atEibOHFigHfcSZMmGZYvXz6wYsWKvmIdWZZNU6ZMmdLf329JJpP2GTNm9BV7x5V8Pm+cPHny1La2thl9fX1T7Xb7DE3Tivq0VhTFMH78+OmnT5+e6fF45t98881mRVGKcjVNk+x2+wf6+vqm7tmzZ/GyZcu8ZrM5X4wLABaL5QNTpkwp37x583Of/exnd06fPj17MUdijK4XJgi9QVdOEYQOoeAShA6h4BKEDqHgEoQOoeAShA6h4BKEDqHgEoQOoeAShA6h4BKEDvn/RevMzWmw9XQAAAAASUVORK5CYII="
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\u001B[35m\u001B[1mBob\u001B[0m\u001B[35m\u001B[0m: {\n",
      "    \"thought\": \"Alice is trying to create a line horizontally again. I need to block her next move otherwise she will have a chance to win. I will place my piece at [7, 10].\",\n",
      "    \"move\": [\n",
      "        7,\n",
      "        10\n",
      "    ]\n",
      "}\n",
      "\u001B[36m\u001B[1mHost\u001B[0m\u001B[36m\u001B[0m: The current board is as follows:\n",
      "000000000000000\n",
      "000000000000000\n",
      "000000000000000\n",
      "000000000000000\n",
      "000000000000000\n",
      "000000000000000\n",
      "000000000000000\n",
      "00000xooxox0000\n",
      "000000000000000\n",
      "000000000000000\n",
      "000000000000000\n",
      "000000000000000\n",
      "000000000000000\n",
      "000000000000000\n",
      "000000000000000\n",
      "Alice, it's your turn.\n"
     ]
    },
    {
     "data": {
      "text/plain": "<Figure size 432x288 with 1 Axes>",
      "image/png": "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"
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\u001B[32m\u001B[1mAlice\u001B[0m\u001B[32m\u001B[0m: {\n",
      "    \"thought\": \"My opponent is trying to block me. I should place my piece at [6, 7] to create a potential line for myself.\",\n",
      "    \"move\": [\n",
      "        6,\n",
      "        7\n",
      "    ]\n",
      "}\n",
      "\u001B[36m\u001B[1mHost\u001B[0m\u001B[36m\u001B[0m: The current board is as follows:\n",
      "000000000000000\n",
      "000000000000000\n",
      "000000000000000\n",
      "000000000000000\n",
      "000000000000000\n",
      "000000000000000\n",
      "0000000o0000000\n",
      "00000xooxox0000\n",
      "000000000000000\n",
      "000000000000000\n",
      "000000000000000\n",
      "000000000000000\n",
      "000000000000000\n",
      "000000000000000\n",
      "000000000000000\n",
      "Bob, it's your turn.\n"
     ]
    },
    {
     "data": {
      "text/plain": "<Figure size 432x288 with 1 Axes>",
      "image/png": "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a7PZmnldAHC5XLeLuMFgsGxwcHCCzWY7x+vGYjHL4ODgZ2w2Wwevm0qlzE6nc7bNZmvldbPZrHFoaKjWZrOd5nUVRdG7XK5bbTZbC687wjESdv1+f8XAwMBYm83WxeuGw2Hr4ODgFJvNdpbXTSQSxU6nc6bNZmvnddPpdFE2my0qWPjzxc6X+kulUobf/e53q3fv3n1HNBot/uMf/zg9/1g2m9W/+eabCwrZz1/+ybIs7d279xYRlzGG3bt333q9XZ/PZz1y5MhMETccDhc3NDTMFnHj8XjRoUOH5om46XTasH//fqExyuVyun379i0UPc579uy57uM7PDxc1tjYOF3EDQQCJe+///4sETcajZrefvvtuSJuMpk0vvXWW/ML3b6g37hms1n+2te+9tbatWubSktLUw8++KA9/1hDQ8Nkn89nSSQS3FXqm5qaPlNWViY0C2Pnzp0zwuFwSSgUKvxd6iN27do1ORQKWf1+v5nXLS4uTvT29pZFIhHuYrNer3eM2+2eGI1GLbyuz+fTOZ3OyiNHjozhdTs7Oyv8fv/4w4cPz+J133333c94vd6yvr4+7uP83nvvTfN6vcWRSKTgVWjpdNqwbdu2FQ6HozIUChXt2bNneqFuNpvVbd++/a5EImHq7OysPnPmTFWhrizL0iuvvHJnMBgsHxgYGLVz587Zhbqqqko7d+68w+12j4nFYsU7duyozWazBb+u//jHPy52Op3j582b17dt27ZFhTgjOqscDAb1mzdvvv3gwYNlx44dm8Drezye2Ouvv17wAfpzRo0a5XvnnXcqDxw4MJbXTSaTkS1btsxsaGgYz+u+8847k773ve993uv1cldrPnny5Iz333/fks1muW8n8atf/WrR3r17x/f19XG7s2bNCre1tcl2u52r+ngikZB++MMfLv23f/u3hX19fVwVppPJpO7HP/7xHb/97W/HHjx4sODwSZKkvv766yWtra21jY2NVS+++OLtiqIUFAJJktiePXuKBgYGxtnt9qI//elP4wpt12AwsEOHDum6u7snjBo1yv78888vTiaTBb3h6HQ69t5776nt7e2TDAZD9De/+U1dOp0u+M2qqakp19jYOP2///u/Fz3zzDN3+v3+Kz7fEQWXMSYVFRWxMWPGJBVF4S6VPnXq1JgkSYpI2wMDA5ZEImH6whe+wH0Pmdra2vTChQuHYrGYidd97733Pjtx4sSygYGBgl8UecaNG3fKaDRG//d//3cBrxuPx0snTJiQaW5u/iyvazAYlM7OzjGf+9znzvN4iqJIRqMxO3r0aHc2m+X6hlFSUqJ+61vfOm0ymapzuVzBL2KTyaROmDAhwhgzTJo0KVVdXV1wm0ajkU2aNCliNpvVO+64I8rTXwCYPHlyWK/Xs/b29plTpkzpKSkpKfhs0dSpU8M6nQ41NTWBj+pHF5ytqVOnRlpbW0va2tpusVqtE9xu9xW/CY4ouFVVVfKqVat6i4qKKhctWuTk9aPR6LSKiorKvr4+7k8vh8NRu2zZMikajXJ/3T18+HDN+PHji5cvX+7hdZ999tk93/nOd3bMmzevn9ft6uoaVV5eXnnffff18brf/va3WyorKw1Lly7t5nWDwaD+rrvu6ps6dWqSxysrK1P/5m/+ZnDx4sXq2LFjfbztjhs3Trd8+fL+FStW9BbqZDIZw6RJkyb19fWZ4vG4ddq0ab2F3nEll8vpx48fP7mlpWVab2/vZKvVOk1V1YI+rWVZ1lVVVU3t6OiY7nQ65y9btswoy3JBrqqqktVq/Uxvb+/k/fv3L6mrq3MZjcZcIS4AmEymz0yaNKl0+/btz3/961/fM3Xq1PSVHIkxmi9MEFqDZk4RhAah4BKEBqHgEoQGoeAShAah4BKEBqHgEoQGoeAShAah4BKEBqHgEoQG+X/Dcc4OaIWRHwAAAABJRU5ErkJggg=="
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\u001B[35m\u001B[1mBob\u001B[0m\u001B[35m\u001B[0m: {\n",
      "    \"thought\": \"Alice is trying to build a vertical line now. I need to block her next move otherwise she will have a chance to win. I will place my piece at [5, 7].\",\n",
      "    \"move\": [\n",
      "        5,\n",
      "        7\n",
      "    ]\n",
      "}\n",
      "\u001B[36m\u001B[1mHost\u001B[0m\u001B[36m\u001B[0m: The current board is as follows:\n",
      "000000000000000\n",
      "000000000000000\n",
      "000000000000000\n",
      "000000000000000\n",
      "000000000000000\n",
      "0000000x0000000\n",
      "0000000o0000000\n",
      "00000xooxox0000\n",
      "000000000000000\n",
      "000000000000000\n",
      "000000000000000\n",
      "000000000000000\n",
      "000000000000000\n",
      "000000000000000\n",
      "000000000000000\n",
      "Alice, it's your turn.\n"
     ]
    },
    {
     "data": {
      "text/plain": "<Figure size 432x288 with 1 Axes>",
      "image/png": "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"
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\u001B[32m\u001B[1mAlice\u001B[0m\u001B[32m\u001B[0m: {\n",
      "    \"thought\": \"My opponent is trying to block me. I should place my piece at [8, 7] to create a potential line for myself.\",\n",
      "    \"move\": [\n",
      "        8,\n",
      "        7\n",
      "    ]\n",
      "}\n",
      "\u001B[36m\u001B[1mHost\u001B[0m\u001B[36m\u001B[0m: The current board is as follows:\n",
      "000000000000000\n",
      "000000000000000\n",
      "000000000000000\n",
      "000000000000000\n",
      "000000000000000\n",
      "0000000x0000000\n",
      "0000000o0000000\n",
      "00000xooxox0000\n",
      "0000000o0000000\n",
      "000000000000000\n",
      "000000000000000\n",
      "000000000000000\n",
      "000000000000000\n",
      "000000000000000\n",
      "000000000000000\n",
      "Bob, it's your turn.\n"
     ]
    },
    {
     "data": {
      "text/plain": "<Figure size 432x288 with 1 Axes>",
      "image/png": "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"
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\u001B[35m\u001B[1mBob\u001B[0m\u001B[35m\u001B[0m: {\n",
      "    \"thought\": \"Alice is trying to build a vertical line again. I need to block her next move otherwise she will have a chance to win. I will place my piece at [9, 7].\",\n",
      "    \"move\": [\n",
      "        9,\n",
      "        7\n",
      "    ]\n",
      "}\n"
     ]
    }
   ],
   "source": [
    "from agentscope import msghub\n",
    "\n",
    "MAX_STEPS = 10\n",
    "\n",
    "msg = None\n",
    "i = 0\n",
    "\n",
    "# Use a msg hub to share conversation between two players, e.g. white player can hear what black player says to the board\n",
    "with msghub(participants=[black, white, board]):\n",
    "    while not board.game_end and i < MAX_STEPS:\n",
    "        for player in [black, white]:\n",
    "            # receive the move from the player, judge if the game ends and remind the player to make a move\n",
    "            msg = board(msg)\n",
    "            \n",
    "            # end the game if draw or win \n",
    "            if board.game_end:\n",
    "                break\n",
    "                \n",
    "            # make a move\n",
    "            msg = player(msg)\n",
    "            \n",
    "            i += 1"
   ],
   "metadata": {
    "collapsed": false,
    "ExecuteTime": {
     "end_time": "2024-03-27T08:10:33.989202Z",
     "start_time": "2024-03-27T08:09:59.446824Z"
    }
   }
  },
  {
   "cell_type": "markdown",
   "source": [
    "## Future Direction\n",
    "\n",
    "This is only a simple example for Gomoku with AI agents. To further improve the game, you can try:\n",
    "\n",
    "- Use `agentscope.agents.UserAgent` to replace one player agent, so you can participate in the game\n",
    "- Use a reasoning algorithm within the agent to make a better move\n",
    "- Fine tune a model to improve the performance of the agent\n",
    "\n",
    "For complete code, we provide in [code/game_gomoku.py](./code/game_gomoku.py)."
   ],
   "metadata": {
    "collapsed": false
   }
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "agentscope",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.9.19"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
